Computer users employ a number of mechanisms to provide input to their computing devices. Keyboards are common input devices, and they typically include single-digit numbers (e.g., in a cellular telephone), each of the letters in the alphabet, and some non-alphanumeric characters (e.g., in Qwerty or Dvorak keyboards). On mobile devices, keyboards are frequently “virtual” in form, and are displayed on a touch screen of a device. Users of computer devices, and particularly of mobile computing devices, may be constrained in their use of a keyboard. For example, the keyboard itself may be constrained in size because mobile device displays are small, so that only a sub-set of relevant characters can be displayed or the keys may be too small to press accurately. Also, the user may be constrained, in that they cannot easily type on a keyboard while walking through a crowded airport or driving a car. In such situations, spoken input may be preferred over typed input. However, speech-to-text conversion or translation typically requires lots of computer processing power, and mobile devices typically do not have much processing power. Also, such conversion often requires a particular user to “train” the system so that it better understands the user's voice and speech patterns.